using System;
using System.Collections.Generic;
using System.ComponentModel;
using Microsoft.Ccr.Core;
using Microsoft.Dss.Core.Attributes;
using Microsoft.Dss.Schemas.PartnerListManager;
using Microsoft.Dss.ServiceModel.Dssp;
using Microsoft.Dss.ServiceModel.DsspServiceBase;
using W3C.Soap;
using SubscribeRequestType = Microsoft.Dss.ServiceModel.Dssp.SubscribeRequestType;

namespace iCreateSimulation
{
    /// <summary>
    /// iCreateSimulation contract class
    /// </summary>
    public sealed class Contract
    {
        /// <summary>
        /// DSS contract identifer for iCreateSimulation
        /// </summary>
        [DataMember]
        public const string Identifier = "http://schemas.tempuri.org/2011/12/icreatesimulation.html";
    }

   

    /// <summary>
    /// iCreateSimulation main operations port
    /// </summary>
    [ServicePort]
    public class iCreateSimulationOperations : PortSet<
        DsspDefaultLookup, 
        DsspDefaultDrop, 
        Get, 
        Subscribe,
        PatExplore,
        MatExplore,
        UpdateMap,
        Sample,
        SimulationReset
        >
    {
    }

    /// <summary>
    /// iCreateSimulation get operation
    /// </summary>
    public class Get : Get<GetRequestType, PortSet<iCreateSimulationState, Fault>>
    {
        /// <summary>
        /// Creates a new instance of Get
        /// </summary>
        public Get()
        {
        }

        /// <summary>
        /// Creates a new instance of Get
        /// </summary>
        /// <param name="body">the request message body</param>
        public Get(GetRequestType body)
            : base(body)
        {
        }

        /// <summary>
        /// Creates a new instance of Get
        /// </summary>
        /// <param name="body">the request message body</param>
        /// <param name="responsePort">the response port for the request</param>
        public Get(GetRequestType body, PortSet<iCreateSimulationState, Fault> responsePort)
            : base(body, responsePort)
        {
        }
    }

    /// <summary>
    /// iCreateSimulation subscribe operation
    /// </summary>
    public class Subscribe : Subscribe<SubscribeRequestType, PortSet<SubscribeResponseType, Fault>>
    {
        /// <summary>
        /// Creates a new instance of Subscribe
        /// </summary>
        public Subscribe()
        {
        }

        /// <summary>
        /// Creates a new instance of Subscribe
        /// </summary>
        /// <param name="body">the request message body</param>
        public Subscribe(SubscribeRequestType body)
            : base(body)
        {
        }

        /// <summary>
        /// Creates a new instance of Subscribe
        /// </summary>
        /// <param name="body">the request message body</param>
        /// <param name="responsePort">the response port for the request</param>
        public Subscribe(SubscribeRequestType body, PortSet<SubscribeResponseType, Fault> responsePort)
            : base(body, responsePort)
        {
        }
    }
    public class PatExplore : Update<UpdateRequestType, PortSet<DefaultUpdateResponseType,Fault>>
    {
        public PatExplore()
        {
        }
    }
    public class MatExplore : Update<UpdateRequestType, PortSet<DefaultUpdateResponseType, Fault>>
    {
        public MatExplore()
        {
        }
    }
    public class UpdateMap: Update<UpdateRequestType, PortSet<DefaultUpdateResponseType,Fault>>
    {
        public UpdateMap()
        {
            
        }
    }
    public class Sample : Update<UpdateRequestType, PortSet<DefaultUpdateResponseType, Fault>>
    {
        public Sample()
        {

        }
    }
    public class SimulationReset : Submit<UpdateRequestType, PortSet<DefaultSubmitResponseType, Fault>>
    {
        public SimulationReset()
        {

        }
    }
}


